import { ajax, isLogin } from '../utils/ajax.js';
import '../lib/jquery.js';
import { pwdTest } from '../utils/reg.js';

(async () => {
    // 调用 isLogin 函数检查用户是否已登录
    const loginInfo = await isLogin();
    if (loginInfo.status !== 1) {
        // 如果用户未登录，提示并重定向到登录页面
        alert('请先登录！');
        location.href = './login.html';
        return;
    }

    // 绑定表单提交事件
    $('form').on('submit', async (e) => {
        e.preventDefault(); // 阻止表单默认提交行为

        const oldPassword = $('.oldpassword').val().trim();
        const newPassword = $('.newpassword').val().trim();
        const rNewPassword = $('.rnewpassword').val().trim();

        // 验证输入是否为空
        if (!oldPassword) alert('旧密码不能为空');
        if (!newPassword) alert('新密码不能为空');
        if (!rNewPassword) alert('确认新密码不能为空');

        // 使用正则表达式验证新密码格式
        if (!pwdTest(newPassword)) {
            alert('新密码格式错误');
            return;
        }

        // 验证两次输入的新密码是否一致
        if (newPassword !== rNewPassword) {
            alert('两次输入的新密码不一致');
            return;
        }

        // 准备提交的数据
        const userData = {
            id: loginInfo.user.id,
            oldPassword,
            newPassword,
            rNewPassword
        };

        // 发送密码重置请求
        const response = await ajax.post('/users/rpwd', userData, {
            headers: { authorization: loginInfo.token }
        });
        
        // 检查响应代码
        if (response.data.code !== 1) {
            alert('修改失败');
            return;
        }

        // 清除本地存储的登录信息
        localStorage.removeItem('token');
        localStorage.removeItem('uid');

        // 提示用户修改成功，并重定向到登录页面
        alert('密码修改成功，请重新登录。');
        location.href = './login.html';
    });
})();